【发布时间】:2016-06-10 17:43:43
【问题描述】:
我从 Node 开始,我不知道如何在这个例子中实现 Promise
- 读取数组口袋妖怪
- 使用api pokemon请求数据
- 在新文件中写入响应
节点:v6.1.0
ES6
我有这个代码
const fs = require('fs')
const request = require('request')
const arrPokemon = new Array('charmander','nidorino')
function writeResponse(name, content) {
return new Promise(function (resolve, reject) {
fs.writeFile(name, content, function (err, res) {
if (err) return reject(err)
return resolve(res)
})
})
}
pokemon = (name) => {
return new Promise(function (resolve, reject) {
request('http://pokeapi.co/api/v2/pokemon/'+name, function (err, res, body) {
if (err) return reject(err)
console.log(body)
return resolve(body)
})
})
}
function readPokemon() {
for(var i= 0; i < arrPokemon.length; i++) {
console.log(arrPokemon[i])
pokemon(arrPokemon[i])
.then(responses => writeResponse('pokemon-' + i, responses))
.catch(err => console.log(err))
}
}
readPokemon()
我理解promises 的概念,但我很难在这个例子中实现承诺。
错误:
创建一个文件
pokemon-2,但我需要为每个响应创建一个文件
【问题讨论】:
-
使用您提供的代码,您的 Promise 已正确实现,所以我不确定问题出在哪里?
-
是的,但我的执行不能正常工作'readPokemon'@peteb
-
为什么要删除错误信息?
-
是“创建一个文件
pokemon-2但我需要为每个响应创建一个文件” 错误消息吗?这听起来不像一个,但在问题中明确标记为这样。
标签: node.js ecmascript-6 es6-promise