格式报错:TypeError: Cannot read property ‘ then ‘of undefined

今天在学习利用 promise 封装响应 POST 请求时发现了一个格式问题

代码如下:

getPostData(req).then((postData) => {
                   ^
TypeError: Cannot read property 'then' of undefined

错误:大概率是你没有在函数中 设置将 Promise 对象返回 或者 Promise 没有正确的声明(写法出错),then 的执行要等待函数处理完返回的 Promise 对象

出错代码:

const getPostData = (req) => {
	// fun 函数内部返回是Promise对象
	fun(req)
}
getPostData(req).then((postData) => {...}

解决方法

  • 在函数内部设置的 Promise 要正确定义或返回
// getPostData 函数内部
const getPostData = (req) => {
	//	正确的设置Promise
	return new Promise({
	
	})
	//	或者
	const promise = new Promise({

	})
	return promise
}

或者:

  • 你调用了外部的函数或对象,且返回值是Promise对象

你在这个函数里面执行了 返回值是 Promise 的函数 或者有一个 Promise对象,但是没有 return,例如 fun 函数是一个返回值为 Promise 的函数,你必须这样写:

const getPostData = (req) => {
	// 记得将其返回
	return fun(req)
	// 或者 promise 是一个 Promise对象
	return promise;
}

总结:主要是没有将 Promise 对象 return 的原因,将其 return 就好

你可能感兴趣的:(前端,经验分享,javascript,前端,开发语言)