assign支持promise, fix #139