我不知道SO是否适合这样的问题。使用'承诺'与不使用'承诺':在哪些情况下?
我知道Promises
,我在Node/Express
环境中使用它们在查询数据库(=等待DB答案,然后执行某些操作)时“修复”Node
的异步行为。
但是,我使用它们越多,我不知道什么时候不使用它们。
例如,我写了这样的一段代码(对于本地脚本查询Google Matrix API
)...
....
for (var i = 0; i < rows.length; i++) { // loop over a CSV file by line
var cell = rows[i].split(/;/)
var origin = cell[1]
var destination = cell[2]
var id = cell[0]
Promise.all([origin, destination, id]).then((p) => {}
...
我不知道,如果使用这里Promise.all
有道理可言..
是否有规则知道?我没有得到的行为?
换句话说,我什么时候知道我的脚本运行function
没有正确的参数(argument
从另一个function
不是“超过”返回)有一个“风险”...?
谢谢。
您使用承诺来帮助处理异步进程。如果没有异步,那么就没有必要使用promise。在你的例子中,'origin','destination'和'id'是**串**,不是承诺。将这些值传递给'Promise.all'没有任何意义。我认为你应该继续学习承诺,以便你真正理解他们正在解决哪个问题。那么“何时不使用它们”这个问题应该是显而易见的。 –
您不会在上面的情况下使用Promises,因为它不是异步的。您通常会在需要回调或等待某些异步行为完成时使用promise。 –
它没有任何意义,'Promise.all(list)'返回一个承诺,一旦所有的承诺在list上完成,但你传递一个单元格列表?文本?当然不是承诺。 – ranisalt