【发布时间】:2015-08-29 17:19:43
【问题描述】:
您能否看看this Demo 并告诉我为什么我无法正确创建和使用 Promise?
var projectInfo = [];
var projectPromise;
var thePromissedProjects;
var projects = [{
"ProjectID": "15260",
"Longitude": "-118.641508",
"Latitude": "51.949915",
}, {
"ProjectID": "17043",
"Longitude": "-125.444557",
"Latitude": "51.097552",
}, {
"ProjectID": "12910",
"Longitude": "-130.759074",
"Latitude": "57.128581",
}, {
"ProjectID": "15204",
"Longitude": "-117.947302",
"Latitude": "52.363281",
}, {
"ProjectID": "15237",
"Longitude": "-118.338717",
"Latitude": "52.013140",
}, {
"ProjectID": "17040",
"Longitude": "-125.142283",
"Latitude": "51.125719",
}, {
"ProjectID": "12961",
"Longitude": "-130.430823",
"Latitude": "57.022356",
}, {
"ProjectID": "14677",
"Longitude": "-119.387702",
"Latitude": "51.896785",
}, {
"ProjectID": "15212",
"Longitude": "-118.104450",
"Latitude": "52.242352",
}];
projectPromise = new Promise(function () {
for (var i = 0; i < projects.length; i++) {
thePromissedProjects = projects[i];
}
return thePromissedProjects;
});
projectPromise.then(printPromisses);
function printPromisses(p){
console.log(p.ProjectID);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
【问题讨论】:
-
嗯,你的代码确实创建了一个承诺,但它没有在任何地方使用,所以,你怎么知道它不起作用?
-
这段代码没有意义。你想做什么?
-
也许他创建了一个不需要承诺的例子,但他正试图在真正需要的地方使用它,所以如果你不了解什么是承诺/延迟是必要的'不理解延迟/承诺真的很容易创建不需要它的示例代码
-
@Gusman 走吧,解决一个你对使用技术一无所知的问题,你甚至不知道它们是否对那些甚至没有提到的库(jQuery?Angular?!)谁无法解释他们需要什么。谈论盲人带领盲人。
-
你的承诺语义很好。您只需要注入
resolve和reject参数并在某处调用它们。但是一个promise只能被解决一次。您要么需要为每个项目创建一个承诺,要么将它们链接起来。显然,正如其他人所说,这里没有异步代码,因此不需要承诺
标签: javascript promise