【发布时间】:2016-08-13 00:19:00
【问题描述】:
我第一次使用异步编程,特别是 Javascript 中的 Promise,我真的很困惑。我仍然在想我们在 C、PHP、C# 等中所做的那样,对于每一步,下一步都可以确定它已经完成。这很容易工作,因为如果我们有这样的代码(例如在 C# 中)
IEnumerable<Page> pages = pagesRepository.getAll();
我们可以在下一行确定所有页面都可供我们在pages 对象中使用。这让生活更轻松,因为我们已经可以正确处理这些数据了。
现在,在带有 Promise 的 JS 中,我们会有类似的东西
var pages = dataService.getPages();
这不会返回数据,而只是一个非常不同的承诺。当然,我们可以使用then 添加回调,但我很困惑,因为在我的代码中的其他地方我可能需要引用这个变量,我无法确定何时调用回调。
那么当我们处理这些事情时,我们是怎么想的呢?是否有一些教程或视频详细展示了如何在 JS 中使用 Promise 进行异步编程?
【问题讨论】:
-
> 在我的代码中的其他地方我可能需要引用这个变量,我不能确定什么时候会调用回调。为什么不?回调可以更改全局变量,例如 ... data_service_last-update
-
我明白你的意思。异步编程不是你可以在几个小时内学会的。您必须以异步方式思考您的代码,即使函数仅在回调时执行,或者让它们在每次执行时检查所需的值。就像开始在 OOP 中编码一样深...
-
@MaxArt,您知道如何开始使用异步编程的视频课程、书籍和教程等优质资源吗?谢谢。
标签: javascript asynchronous promise