Node - ReferenceError: Promise is not defined
Node - ReferenceError: Promise is not defined
我从 Node.js 开始。抱歉,这个问题可能很愚蠢。
试图理解为什么下面的代码会抛出错误:ReferenceError: Promise is not defined
allAccountFixtures: ['account-customer-joe', 'account-partner-sam', 'account-partner-jane', 'account-admin-jill'],
allProductFixtures: ['product-123', 'product-234', 'product-345', 'product-456'],
...
loadBasicFixtures: (Api) => {
return Promise.all([
Support.importRecords(Api.accountsAPI, Support.allAccountFixtures),
Support.importRecords(Api.productsAPI, Support.allProductFixtures)
]);
},
我的 API 在别处定义为:
this.accountsAPI = app.service('/api/accounts');
this.productsAPI = app.service('/api/products');
导入函数为:
importRecords: (feathersService, fixtureNames) => {
// Wrap in an array if there's only one.
if (!(fixtureNames instanceof Array)) { fixtureNames = [fixtureNames]; }
// Create a separate promise for each JSON fixture to load the JSON from a
// file and send it to feathers.create(). Don't execute yet.
var promises = fixtureNames.map(fixtureName => {
var filePath = `test/fixtures/json/${fixtureName}.json`;
// console.log(`-> Loading JSON fixture: ${filePath}`);
return fs.readFileAsync(filePath, 'utf8')
.then((jsonString) => {
return JSON.parse(jsonString);
}).then((json) => {
return feathersService.create(json);
});
});
// Wrap all fixture loading promises inside a single outer promise that will
// fire when all of the child promises are complete.
return Promise.all(promises);
},
不知道提供的信息是否足以说明正在发生的事情。我查找了 "promise" 的概念,仅此而已。也许你可以指出正确的方向。文档提到解决和拒绝。
您需要导入并要求 Promise
npm install promise --save
然后
var Promise = require('promise');
我会把我的评论变成一个答案,因为它解决了你的问题。
一些旧版本的 node.js 没有内置的承诺,要与它们一起使用承诺需要加载添加承诺支持的第三方库。
如果您升级到 node.js 的任何 4.x 版本或更高版本,您将拥有内置于 node.js 的承诺。
我从 Node.js 开始。抱歉,这个问题可能很愚蠢。
试图理解为什么下面的代码会抛出错误:ReferenceError: Promise is not defined
allAccountFixtures: ['account-customer-joe', 'account-partner-sam', 'account-partner-jane', 'account-admin-jill'],
allProductFixtures: ['product-123', 'product-234', 'product-345', 'product-456'],
...
loadBasicFixtures: (Api) => {
return Promise.all([
Support.importRecords(Api.accountsAPI, Support.allAccountFixtures),
Support.importRecords(Api.productsAPI, Support.allProductFixtures)
]);
},
我的 API 在别处定义为:
this.accountsAPI = app.service('/api/accounts');
this.productsAPI = app.service('/api/products');
导入函数为:
importRecords: (feathersService, fixtureNames) => {
// Wrap in an array if there's only one.
if (!(fixtureNames instanceof Array)) { fixtureNames = [fixtureNames]; }
// Create a separate promise for each JSON fixture to load the JSON from a
// file and send it to feathers.create(). Don't execute yet.
var promises = fixtureNames.map(fixtureName => {
var filePath = `test/fixtures/json/${fixtureName}.json`;
// console.log(`-> Loading JSON fixture: ${filePath}`);
return fs.readFileAsync(filePath, 'utf8')
.then((jsonString) => {
return JSON.parse(jsonString);
}).then((json) => {
return feathersService.create(json);
});
});
// Wrap all fixture loading promises inside a single outer promise that will
// fire when all of the child promises are complete.
return Promise.all(promises);
},
不知道提供的信息是否足以说明正在发生的事情。我查找了 "promise" 的概念,仅此而已。也许你可以指出正确的方向。文档提到解决和拒绝。
您需要导入并要求 Promise
npm install promise --save
然后
var Promise = require('promise');
我会把我的评论变成一个答案,因为它解决了你的问题。
一些旧版本的 node.js 没有内置的承诺,要与它们一起使用承诺需要加载添加承诺支持的第三方库。
如果您升级到 node.js 的任何 4.x 版本或更高版本,您将拥有内置于 node.js 的承诺。