Promise 对象在 React Native 项目中不起作用
Promise objects not working in React Native project
首先,我认为 firebase 函数被破坏了。然后,我尝试制作一个 returns Promise 的简单函数。我把它放到顶层 index.js.
const testPromise = param => {
console.log('return promise', param);
return new Promise((resolve, reject) => {
console.log('resolve promise');
resolve('derp');
});
};
testPromise('hede')
.then(d => {
console.log('resolved');
})
.catch(e => {
console.log('e', e);
});
AppRegistry.registerComponent(appName, () => App);
控制台输出:
return promise hede
resolve promise
看,没有 'resolved' 日志,也没有错误日志。
我尝试用 nvm 更改 nodejs 版本,但没有成功。我试过 v12.5.0、v12.18.2、v15.6.0、v10.16.3。我试过 nvm use 12.5 && npm start
我尝试创建一个新的 react-native 项目,我复制了所有内容。 现在,它按预期工作了。这对我来说是一个解决方案,但我没有将问题标记为已解决,因为仍然是一个谜,我不明白为什么它没有在现有项目上工作。
似乎在 metro.config.js
文件中将 inlineRequires
设置为 false 可以解决问题。
module.exports = {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
},
};
进行更改后输出为:
return promise hede
resolve promise
resolved
来源:https://github.com/facebook/react-native/issues/31558#issuecomment-878342213
首先,我认为 firebase 函数被破坏了。然后,我尝试制作一个 returns Promise 的简单函数。我把它放到顶层 index.js.
const testPromise = param => {
console.log('return promise', param);
return new Promise((resolve, reject) => {
console.log('resolve promise');
resolve('derp');
});
};
testPromise('hede')
.then(d => {
console.log('resolved');
})
.catch(e => {
console.log('e', e);
});
AppRegistry.registerComponent(appName, () => App);
控制台输出:
return promise hede
resolve promise
看,没有 'resolved' 日志,也没有错误日志。
我尝试用 nvm 更改 nodejs 版本,但没有成功。我试过 v12.5.0、v12.18.2、v15.6.0、v10.16.3。我试过 nvm use 12.5 && npm start
我尝试创建一个新的 react-native 项目,我复制了所有内容。 现在,它按预期工作了。这对我来说是一个解决方案,但我没有将问题标记为已解决,因为仍然是一个谜,我不明白为什么它没有在现有项目上工作。
似乎在 metro.config.js
文件中将 inlineRequires
设置为 false 可以解决问题。
module.exports = {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
},
};
进行更改后输出为:
return promise hede
resolve promise
resolved
来源:https://github.com/facebook/react-native/issues/31558#issuecomment-878342213