【发布时间】:2015-05-07 08:55:37
【问题描述】:
我需要下一行代码中的承诺结果,但我不能只将它包含在承诺的.then 中,因为包含函数完成然后迟到了。
基本上我有一些同步代码和一些异步代码。我需要暂停同步代码并等待异步完成,然后再继续。
function outer () {
it('1', function () {});
it('2', function () {});
it('3', function () {});
var result = null;
promise.then(function (r) {
result = r;
});
// How do I wait for result to be
// valid?
if (result === true) {
it('4', function () {});
}
}
请注意,我可以不这样做...
function outer () {
it('1', function () {});
it('2', function () {});
it('3', function () {});
promise.then(function (result) {
// It's to late to call it. The outer function is done
// the it call here causes a throw
if (result === true) {
it('4', function () {});
}
});
}
【问题讨论】:
-
@FelixKling- 我知道为什么,我知道什么是承诺,我经常使用它,到处都是。我只是想学习如何在一些同步的代码中使用它。
-
期望一切同步的代码不能调用异步代码。就是这样,这就是另一个问题的重点。
-
@Justin808 - 在这一点上,我认为也许你应该删除这个问题并开始一个新问题,重点关注如何使用具有承诺和异步结果的特定版本的 Jasmine。这将以更好的方式引导您的问题,如果您使用 Jasmine 和 async 对其进行标记,您将有望吸引更多了解该特定问题的人。
-
@jfriend00 - 我试过了。所以改变了我猜,他们不会让我用答案删除它。所以我被一个-2困住了,一个无用的问题是关于SO的。我标记了它以尝试将其删除,我们会看到。
标签: javascript node.js promise