Foreach与承诺javascript

use*_*436 1 javascript ember.js

功能:

users.forEach(function(user) {
    window.server.users.add(user);
});
Run Code Online (Sandbox Code Playgroud)

我想要的是等到值"成功"插入,然后才添加下一个.这一直重复到foreach结束."add"函数默认返回一个promise,但我不知道如何更改代码来执行此操作.

users.forEach(function(user) {
    window.server.users.add(user).then(function(){
    //insert finished
    });
});
Run Code Online (Sandbox Code Playgroud)

mea*_*gar 5

不要用forEach.保留自己的索引变量,并定义一个使用它的函数,然后将其自身排列在promise的回调中.

var i = 0;
addUser = function () {
  if (i >= users.length) return;

  window.server.users.add(users[i++]).then(addUser);
}

addUser();
Run Code Online (Sandbox Code Playgroud)