【发布时间】:2016-06-07 07:39:04
【问题描述】:
我希望返回一个以后会自行解决的 Promise,但我的语法似乎无效,我很好奇有什么更好的实现方式。为什么 Promise 构造函数需要执行器?
promise = new Promise()无效,因为我需要提供一个函数
function getDetails (someHash) {
var url = "http://somewebsite.com/" + someHash,
promise = new Promise();
makeAjaxRequest(url, function (response) {
promise.resolve(response.data);
});
setTimeout(function () {
promise.reject("timeout");
}, 500);
return promise;
}
function makeAjaxRequest (url, callback) {
var someResponse = {data: "some data"};
setTimeout(function () {
callback(someResponse);
}, 200);
}
有没有更好的方法来实现这个功能?
【问题讨论】:
-
第一
function行末尾的{}是什么? -
这看起来像你的语法错误。
-
我不知道为什么这被否决了,但在我看来这是一个很好的问题。
-
你为什么不直接使用一个执行器来让你的代码工作?
-
@BenjaminGruenbaum:第一个问题似乎是您刚刚回答的stackoverflow.com/questions/37651780/… 的欺骗,第二个问题似乎是某种RTFM
标签: javascript asynchronous promise